package Naves.Enemigas;

import Juego.Juego;

/**Nave enemiga
 * 
 * @author Javier Graff
 * @author Eric Avondet
 * @author Rodrigo Herrera
 *
 */
@SuppressWarnings("serial")
public abstract class Nave_Enemiga extends Naves.Nave 
{
	
	protected int frecuencia_disparo;
	
	protected final static int adelante = 1;
	protected final static int izquierda = 2;
	protected final static int derecha = 3;
	protected final static int atras = 4;
	protected final static int ne = 5;
	protected final static int no = 6;
	protected final static int se = 7;
	protected final static int so = 8;
	protected int mov_actual;

/**
 * Constructor
 * @param j juego
 */
	public Nave_Enemiga(Juego j) 
	{
		super(j);
		mov_actual=atras;
		// TODO Auto-generated constructor stub
	}
	
	/**
	 * movimiento estandar de una nave enemiga
	 */
	public void movimiento()
	{
		
		switch(mov_actual)
		{
			case  adelante : { avanzar(); break;}
			case izquierda : { izquierda(); break;}
			case derecha : { derecha(); break;}
			case atras : { retroceder(); break;}
			case ne : { noreste(); break;}
			case no : { noroeste(); break;}
			case se : { sureste(); break;}
			case so : { suroeste(); break;}
		}
		

	}
	/**
	 * accion que realiza la nave cuando recibe una bomba
	 */
	public abstract void recibir_bomba();
	
	/**
	 * retorna la frecuencia de disparos
	 * @return frecuencia de disp
	 */
	public int get_frec_disp()
	{
		return frecuencia_disparo;
	}
	
	
	
	public void set_mov_ad()
	{
		mov_actual = adelante;
	}
	
	public void set_mov_at()
	{
		mov_actual = atras;
	}
	
	public void set_mov_de()
	{
		mov_actual = derecha;
	}
	
	public void set_mov_iz()
	{
		mov_actual = izquierda;
	}
	
	public void set_mov_ne()
	{
		mov_actual = ne;
	}
	
	public void set_mov_no()
	{
		mov_actual = no;
	}
	
	public void set_mov_se()
	{
		mov_actual = se;
	}
	
	public void set_mov_so()
	{
		mov_actual = so;
	}
	

	
		
}




